The invention relates to a disk array apparatus in which a plurality of disk units which are constructed in an array form are accessed in parallel on the basis of a command from an upper apparatus and, more particularly, to a disk array apparatus which can instantaneously reconstruct data even if a fault occurs in a disk unit.
In association with a request for high reliability in recent computer systems, the realization of a high reliability in input/output subsystems using a magnetic disk unit is required. To realize such a high reliability, a disk array apparatus in which data and redundant information are stored by making a plurality of disk units in parallel has been put into practical use. In the disk array apparatus, in the case where the data of one disk was lost due to a fault or the like, the lost data can be reconstructed into a spare disk unit which has been prepared as an alternate destination by using the data of the remaining disk units, so that a high reliability can be obtained. However, in the case where abnormalities simultaneously occur in a plurality of disk units in the disk array, the data cannot be reconstructed any more and the improvement in such a point is demanded.
In recent years, as an external memory device of a computer system, a disk unit such as magnetic disk unit, optical disc unit, or the like having features such as non-volatileness of the recording, large capacity, high data transfer speed, and the like has widely been used. As requirements for the disk unit, there are a high speed data transfer, a significance of the reliability, a large capacity, and low costs. An attention is paid to the disk array apparatus as an apparatus which satisfies those requirements. The disk array apparatus is an apparatus such that a few to tens of small disk units are arranged and data is distributed and recorded to a plurality of disk units and is accessed in parallel. In the disk array apparatus, by transferring the data to a plurality of disk units in parallel, the data can be transferred at a high speed that is higher than that in case of using one disk unit by the number of times corresponding to the number of disks. In addition to the data, by additionally recording redundant information such as parity data or the like, a data error which occurs due to a fault of the disk unit or the like can be detected and corrected. Thus, the significance of the reliability of a degree which is almost equivalent to that in case of using a method whereby the contents of the disk unit are recorded as double data can be realized by costs lower than those in the double data.
Hitherto, David A. Patterson et al. of University of California at Berkeley have proposed a paper in which, with respect to the disk array apparatus which accesses a large amount of data to many disks at a high speed and realizes redundancy of the data when a fault occurs in the disk, the disk array apparatus is classified into five levels 1 to 5 and is evaluated (ACMSIGMOD Conference, Chicago, Ill., pages 109 to 116, Jun. 1 to 3, 1988). The levels 1 to 5 to classify the disk array apparatus which have been proposed by David A. Patterson et al. are abbreviated to RAID (Redundant Arrays of Inexpensive Disks) 1 to 5. RAID1 to RAID5 will now be briefly described hereinbelow.
[RAID0]
Disk array apparatus having no redundancy of data. Although such a disk array apparatus is not included in the classification by David A. Patterson et al., it is temporarily called RAID0.
[RAID1]
Mirror disk unit in which two disk units are constructed as one set and the same data is written into them. Although a use efficiency of the disk units is low, since the mirror disk unit has a redundancy and can be realized by a simple control, it is widely spread.
[RAID2]
Data is striped (divided) on a bit or byte unit basis and the stripe data is read out or written from/into disk units in parallel. The stripe data is physically recorded into the same sector for all of the disk units. In addition to the disk units for data, the apparatus has a disk unit to record a Hamming code. The failed disk unit is identified from the Hamming code and data is reconstructed. However, such an apparatus is not put into practical use.
[RAID3]
Data is striped on a bit or byte unit basis, a parity is calculated, and the data and parity are written in parallel into disk units. RAID3 is effective in case of continuously handling a large amount of data. However, in the case such as a transaction process in which a small amount of data is accessed at random, a high data transfer speed cannot be effected and a use efficiency of the disk units deteriorates.
[RAID4]
One data is striped on a sector unit basis and the stripe data is written into the same disk unit. A parity is stored in a fixedly determined disk unit. When data is written, the data before writing and the parity are read out and, after that, a new parity is calculated and the data is written. Therefore, the accessing operations of total four times are needed with respect to one writing operation. On the other hand, since an access to the disk unit for parity certainly occurs when writing, the writing operations to a plurality of disk units cannot be simultaneously executed. However, although RAID4 has been defined, it is not yet put into practical use at present because there is hardly a merit.
[RAID5]
Since the disk unit for parity is not limited, the reading/writing operations can be executed in parallel. That is, the disk unit into which a parity is set differs every sector. So long as the parity disks don't overlap, the sector data can be written into different disk units in parallel. As mentioned above, in RAID5, since the reading or writing operation can be executed by asynchronously accessing to a plurality of disk units, RAID5 is suitable for the transaction process such that a small amount of data is accessed at random.
In the disk array apparatus having the operation forms of RAID3 and RAID5 which are at present being put into practical use, for example, a spare disk unit is prepared every rank constructing one parity group. In the case where one disk unit fails, the data of another normal disk unit is read out and the data of the failed disk unit is reconstructed into the spare disk unit. Therefore, even if the data is lost by a fault of the disk unit, it can be reconstructed, so that an extremely high reliability can be obtained. There is, however, a problem such that in the case where a fault simultaneously occurs in two or more disk units and the data is lost, the lost data cannot be reconstructed from the remaining normal disk unit but a system down occurs.